
CC = $(CCACHE) g++
OBJ_DIR = ./obj/
LIB = -lxml2

OO = $(OBJ_DIR)/protocolMaker.o $(OBJ_DIR)/serialize.o $(OBJ_DIR)/writer.o
BIN = ../protocolMaker

CPP_OBJ_DIR = ./cpp/obj/
CPP_OO = $(CPP_OBJ_DIR)/cppSerialize.o $(CPP_OBJ_DIR)/cppWriter.o

CS_OBJ_DIR = ./cs/obj/
CS_OO = $(CS_OBJ_DIR)/csSerialize.o $(CS_OBJ_DIR)/csWriter.o

all: $(BIN) 

$(BIN): $(OO) $(CPP_OO) $(CS_OO)
	$(CC) -o $(BIN) $^ $(LIB)

$(CPP_OBJ_DIR)/%.o:./cpp/%.cpp
	$(CC) -c -o $@ -I./ $<
$(CS_OBJ_DIR)/%.o:./cs/%.cpp
	$(CC) -c -o $@ -I./ $<
$(OBJ_DIR)/%.o:%.cpp
	$(CC) -c -o $@ -I./ $<
clean:
	rm -fr $(OO)
	rm -fr $(BIN)
	rm -fr $(CPP_OO)
	rm -fr $(CS_OO)
	
